Zhou, F., Wang, R., Yuan, P., Ren, Y., Mao, Y., Li, R., Lian, Y., Li, J., Wen, L., Yan, L., et al. (2019). Reconstituting the transcriptome and DNA methylome landscapes of human implantation. Nature 572, 660–664.
Load required packages.
library(tidyverse)
library(magrittr)
library(Matrix)
library(Seurat)
library(extrafont)
library(patchwork)
# library(tidylog)
Sys.Date()
## [1] "2020-07-31"
source(
file = file.path(
SCRIPT_DIR,
"utilities.R"
)
)
cell_metadata <- read_csv(
file = "../Supplementary_Table_2_Sample_Information.csv"
) %>%
select(
Sample,
Day,
IVC,
Embryo,
Ori_Day,
Ori_Day_Emb,
Sex,
CNV,
Lineage
) %>%
rename_all(tolower)
## Parsed with column specification:
## cols(
## Sample = col_character(),
## Day = col_character(),
## IVC = col_character(),
## Embryo = col_character(),
## chrM_Ratio = col_double(),
## ERCC_Ratio = col_double(),
## GeneNum = col_double(),
## Ori_Day = col_character(),
## Ori_Day_Emb = col_character(),
## Sex = col_character(),
## Pseudotime = col_double(),
## CNV = col_character(),
## Lineage = col_character()
## )
Prepare metadata for single cells.
embedding_5911 <- read_csv(
file = "5911/embedding_ncomponents7_seed20200317.csv"
) %>%
left_join(
cell_metadata,
by = c("cell" = "sample")
) %>%
mutate(
developmental_stage = str_replace(
string = day,
pattern = "D",
replacement = "E"
),
developmental_stage = factor(
developmental_stage,
levels = c(str_sort(unique(developmental_stage), numeric = TRUE))
),
#
lineage = ifelse(lineage == "MIX", "ysTE", lineage),
lineage = factor(
lineage,
levels = c("EPI", "PE", "TE", "ysTE")
)
)
## Parsed with column specification:
## cols(
## cell = col_character(),
## batch = col_character(),
## louvain = col_double(),
## x_tsne = col_double(),
## y_tsne = col_double(),
## x_umap = col_double(),
## y_umap = col_double(),
## x_fitsne = col_double(),
## y_fitsne = col_double(),
## x_phate = col_double(),
## y_phate = col_double(),
## `x_min_dist=0.1` = col_double(),
## `y_min_dist=0.1` = col_double(),
## x_multicoretsne = col_double(),
## y_multicoretsne = col_double()
## )
reticulate::py_discover_config()
## python: /Users/jialei/.pyenv/shims/python
## libpython: /Users/jialei/.pyenv/versions/3.8.2/lib/libpython3.8.dylib
## pythonhome: /Users/jialei/.pyenv/versions/3.8.2:/Users/jialei/.pyenv/versions/3.8.2
## version: 3.8.2 (default, May 23 2020, 03:35:41) [Clang 11.0.3 (clang-1103.0.32.62)]
## numpy: /Users/jialei/.pyenv/versions/3.8.2/lib/python3.8/site-packages/numpy
## numpy_version: 1.19.0
##
## NOTE: Python version was forced by RETICULATE_PYTHON
np <- reticulate::import("numpy", convert = TRUE)
scipy.sparse <- reticulate::import(module = "scipy.sparse", convert = TRUE)
matrix_readcount_use <- scipy.sparse$load_npz("../matrix_readcount.npz")
matrix_readcount_use_features <- np$load("../matrix_readcount_features.npy")
matrix_readcount_use_barcodes <- np$load("../matrix_readcount_barcodes.npy")
colnames(matrix_readcount_use) <- matrix_readcount_use_barcodes
rownames(matrix_readcount_use) <- matrix_readcount_use_features
matrix_readcount_use <- matrix_readcount_use[, embedding_5911$cell]
# calculate CPM
matrix_cpm_use <- calc_cpm(matrix_readcount_use)
stopifnot(
dim(matrix_readcount_use) == dim(matrix_cpm_use)
)
print(dim(matrix_readcount_use))
## [1] 33538 5911
walk(list(embedding_5911, matrix_readcount_use, matrix_cpm_use), function(x) {
print(object.size(x), units = "auto", standard = "SI")
})
## 2.1 MB
## 551.5 MB
## 551.5 MB
customized_theme <- function(x = 0.035, y = 0.995) {
theme(
legend.text = element_text(family = "Arial", size = 6),
legend.key.size = unit(3, "mm"),
legend.margin = margin(t = 0, r = 0, b = 0, l = 0, unit = "mm"),
legend.background = element_blank(),
#
legend.justification = c(0, 1),
legend.position = c(x, y)
)
}
p_embedding_5911_cluster <- plot_embedding(
embedding = embedding_5911[, c("x_tsne", "y_tsne")],
color_values = embedding_5911$louvain %>% as.factor(),
label = "t-SNE; Cluster",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = FALSE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = gg_color_hue(n = length(unique(embedding_5911$louvain)))
)
# Extended Data Fig. 1i
p_embedding_5911_developmental_stage <- plot_embedding(
embedding = embedding_5911[, c("x_tsne", "y_tsne")],
color_values = embedding_5911$developmental_stage,
label = "t-SNE; Developmental stage",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 20")(
length(levels(embedding_5911$developmental_stage))
)
) +
labs(color = NULL) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
customized_theme()
# Extended Data Fig. 1j
p_embedding_5911_lineage <- plot_embedding(
embedding = embedding_5911[, c("x_tsne", "y_tsne")],
color_values = embedding_5911$lineage,
label = "t-SNE; Lineage",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(
length(levels(embedding_5911$lineage))
)
) +
labs(color = NULL) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
customized_theme()
p_embedding_5911_cnv <- plot_embedding(
embedding = embedding_5911[, c("x_tsne", "y_tsne")],
color_values = embedding_5911$cnv,
label = "t-SNE; CNV",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(8) %>% rev(.)
) +
labs(color = NULL) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
customized_theme()
p_embedding_5911_sex <- plot_embedding(
embedding = embedding_5911[, c("x_tsne", "y_tsne")],
color_values = embedding_5911$sex,
label = "t-SNE; Sex",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(6) %>% rev(.)
) +
labs(color = NULL) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
customized_theme()
Summarize sequencing depth.
embedding_5911 %>%
mutate(
num_umis = colSums(matrix_readcount_use[, cell]),
num_genes = colSums(matrix_readcount_use[, cell] > 0)
) %>%
group_by(louvain) %>%
summarise(
num_cell = n(),
median_umis = median(num_umis),
median_genes = median(num_genes)
) %>%
xtable::xtable()
## `summarise()` ungrouping output (override with `.groups` argument)
Summarize development stage info.
embedding_5911 %>%
dplyr::count(developmental_stage) %>%
print(nrow(.))
## # A tibble: 5 x 2
## developmental_stage n
## <fct> <int>
## 1 E6 733
## 2 E8 2077
## 3 E10 1710
## 4 E12 854
## 5 E14 537
Summarize lineage info.
embedding_5911 %>%
dplyr::count(lineage) %>%
print(nrow(.))
## # A tibble: 4 x 2
## lineage n
## <fct> <int>
## 1 EPI 330
## 2 PE 179
## 3 TE 5363
## 4 ysTE 39
Summarize CNV info.
embedding_5911 %>%
dplyr::count(cnv) %>%
print(nrow(.))
## # A tibble: 2 x 2
## cnv n
## <chr> <int>
## 1 Abnormal 1955
## 2 Normal 3956
Summarize Sex info.
embedding_5911 %>%
dplyr::count(sex) %>%
print(nrow(.))
## # A tibble: 2 x 2
## sex n
## <chr> <int>
## 1 Female 2718
## 2 Male 3193
Select cells analyzed in Fig. 1a.
EMBRYOS_SELECTED <- c(
"ha_D6_E2",
"hm_D6_E1",
"hm_D6_E2",
"hm_D8_E2",
"hm_D8_E3",
"hm_D8_E5",
"ha_D8_E1",
"hm_D8_E1",
"hv_D8_E1",
"hv_D8_E2",
"hv_D8_E3",
"hv_D10_E6",
"ha_D10_E1",
"ha_D10_E2",
"hm_D10_E4",
"hm_D10_E9",
"hv_D10_E7",
"hv_D10_E8",
"ha_D12_E1",
"hv_D12_E1",
"hv_D12_E2"
)
embedding_5911 %<>%
mutate(
selected = ifelse(ori_day_emb %in% EMBRYOS_SELECTED, 1, 0)
)
embedding_5911 %>%
dplyr::count(selected) %>%
print(nrow(.))
## # A tibble: 2 x 2
## selected n
## <dbl> <int>
## 1 0 2727
## 2 1 3184
p_embedding_5911_selected <- plot_embedding(
embedding = embedding_5911[, c("x_tsne", "y_tsne")],
color_values = embedding_5911$selected %>% as.factor(),
label = "t-SNE; 3184 in Fig. 1c",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = c("grey", "salmon")
) +
labs(color = NULL) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
customized_theme()
purrr::reduce(list(
p_embedding_5911_cluster,
p_embedding_5911_developmental_stage,
p_embedding_5911_lineage,
p_embedding_5911_cnv,
p_embedding_5911_sex,
p_embedding_5911_selected
), `+`) +
plot_layout(ncol = 3) +
plot_annotation(
theme = theme(plot.margin = margin())
)
Extended Data Fig. 2abc
FEATURES_SELECTED <- c(
"POU5F1",
"NANOG",
"SOX2",
"GATA4",
"PDGFRA",
"FOXA2",
"GATA3",
"DAB2",
"TFAP2C"
)
FEATURES_SELECTED <- rownames(matrix_readcount_use)[
gene_symbo_info$X2 %in% FEATURES_SELECTED
]
map(FEATURES_SELECTED, function(x) {
plot_embedding_value(
embedding = embedding_5911[, c("x_tsne", "y_tsne")],
color_values = matrix_cpm_use[x, embedding_5911$cell],
colorbar_position = c(0.86, 0.28),
label = str_c("t-SNE; ", x),
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 1,
sort_values = TRUE,
FUN = NULL
)
}) %>%
purrr::reduce(`+`) +
plot_layout(nrow = 3, byrow = TRUE) +
plot_annotation(theme = theme(plot.margin = margin()))
Prepare metadata for single cells.
embedding_3184 <- read_csv(
file = "embedding_ncomponents8_seed20200317.csv"
) %>%
select(cell, batch, louvain, x_tsne, y_tsne) %>%
left_join(
embedding_5911 %>%
select(cell, day:last_col()),
by = "cell"
)
## Parsed with column specification:
## cols(
## cell = col_character(),
## batch = col_character(),
## louvain = col_double(),
## x_tsne = col_double(),
## y_tsne = col_double(),
## x_umap = col_double(),
## y_umap = col_double(),
## x_fitsne = col_double(),
## y_fitsne = col_double(),
## x_phate = col_double(),
## y_phate = col_double(),
## `x_min_dist=0.1` = col_double(),
## `y_min_dist=0.1` = col_double(),
## x_multicoretsne = col_double(),
## y_multicoretsne = col_double()
## )
Fig. 1cd
p_embedding_3184_cluster <- plot_embedding(
embedding = embedding_3184[, c("x_tsne", "y_tsne")],
color_values = embedding_3184$louvain %>% as.factor(),
label = "t-SNE; Cluster",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = FALSE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = gg_color_hue(n = length(unique(embedding_3184$louvain)))
)
p_embedding_3184_developmental_stage <- plot_embedding(
embedding = embedding_3184[, c("x_tsne", "y_tsne")],
color_values = embedding_3184$developmental_stage,
label = "t-SNE; Developmental stage",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 20")(
length(levels(embedding_3184$developmental_stage))
)
) +
labs(color = NULL) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
customized_theme(x = 0.75, y = 0.995)
p_embedding_3184_lineage <- plot_embedding(
embedding = embedding_3184[, c("x_tsne", "y_tsne")],
color_values = embedding_3184$lineage,
label = "t-SNE; Lineage",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(
length(levels(embedding_3184$lineage))
)
) +
labs(color = NULL) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
customized_theme(x = 0.75, y = 0.995)
p_embedding_3184_cnv <- plot_embedding(
embedding = embedding_3184[, c("x_tsne", "y_tsne")],
color_values = embedding_3184$cnv,
label = "t-SNE; CNV",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(
8
) %>% rev(.)
) +
labs(color = NULL) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
customized_theme(x = 0.75, y = 0.995)
p_embedding_3184_sex <- plot_embedding(
embedding = embedding_3184[, c("x_tsne", "y_tsne")],
color_values = embedding_3184$sex,
label = "t-SNE; Sex",
# label_position = c(label_x, label_y),
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = 0.8,
sort_values = FALSE
) +
scale_color_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(
6
) %>% rev(.)
) +
labs(color = NULL) +
guides(
colour = guide_legend(override.aes = list(size = 3))
) +
customized_theme(x = 0.75, y = 0.995)
# x = 0.035, y = 0.995
p_embedding_3184_umi <- plot_embedding_value(
embedding = embedding_3184[, c("x_tsne", "y_tsne")],
color_values = matrix_readcount_use[, embedding_3184$cell] %>%
colSums(),
colorbar_position = c(0.85, 0.95),
label = "UMI distribution",
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 0.8,
sort_values = FALSE,
FUN = function(x) log10(x)
)
purrr::reduce(list(
p_embedding_3184_cluster,
p_embedding_3184_umi,
p_embedding_3184_developmental_stage,
p_embedding_3184_lineage,
p_embedding_3184_cnv,
p_embedding_3184_sex
), `+`) +
plot_layout(ncol = 3) +
plot_annotation(
theme = theme(plot.margin = margin())
)
FEATURES_SELECTED
## [1] "ENSG00000181449_SOX2" "ENSG00000134853_PDGFRA" "ENSG00000153071_DAB2"
## [4] "ENSG00000204531_POU5F1" "ENSG00000136574_GATA4" "ENSG00000107485_GATA3"
## [7] "ENSG00000111704_NANOG" "ENSG00000125798_FOXA2" "ENSG00000087510_TFAP2C"
map(FEATURES_SELECTED, function(x) {
plot_embedding_value(
embedding = embedding_3184[, c("x_tsne", "y_tsne")],
color_values = matrix_cpm_use[x, embedding_3184$cell],
colorbar_position = c(0.85, 0.95),
label = str_c("t-SNE; ", x),
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 1,
sort_values = TRUE,
FUN = NULL
)
}) %>%
purrr::reduce(`+`) +
plot_layout(nrow = 3, byrow = TRUE) +
plot_annotation(theme = theme(plot.margin = margin()))
flip_plot <- function(data, x) {
data %>%
mutate("{{x}}" := 0 - {{x}})
}
sessioninfo::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
## setting value
## version R version 4.0.2 (2020-06-22)
## os macOS Catalina 10.15.6
## system x86_64, darwin19.5.0
## ui unknown
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz America/Chicago
## date 2020-07-31
##
## ─ Packages ───────────────────────────────────────────────────────────────────
## package * version date lib
## abind 1.4-5 2016-07-21 [1]
## ape 5.4 2020-06-03 [1]
## assertthat 0.2.1 2019-03-21 [1]
## backports 1.1.8 2020-06-17 [1]
## blob 1.2.1 2020-01-20 [1]
## broom 0.7.0.9001 2020-07-28 [1]
## cellranger 1.1.0 2016-07-27 [1]
## cli 2.0.2 2020-02-28 [1]
## cluster 2.1.0 2019-06-19 [2]
## codetools 0.2-16 2018-12-24 [2]
## colorspace 1.4-1 2019-03-18 [1]
## cowplot 1.0.0 2019-07-11 [1]
## crayon 1.3.4 2017-09-16 [1]
## data.table 1.13.0 2020-07-24 [1]
## DBI 1.1.0 2019-12-15 [1]
## dbplyr 1.4.4.9000 2020-07-28 [1]
## deldir 0.1-28 2020-07-15 [1]
## digest 0.6.25 2020-02-23 [1]
## dplyr * 1.0.1 2020-07-28 [1]
## ellipsis 0.3.1.9000 2020-07-18 [1]
## evaluate 0.14 2019-05-28 [1]
## extrafont * 0.17 2014-12-08 [1]
## extrafontdb 1.0 2012-06-11 [1]
## fansi 0.4.1 2020-01-08 [1]
## farver 2.0.3 2020-01-16 [1]
## fastmap 1.0.1 2019-10-08 [1]
## fitdistrplus 1.1-1 2020-05-19 [1]
## forcats * 0.5.0.9000 2020-05-28 [1]
## fs 1.4.2.9000 2020-07-29 [1]
## future 1.18.0 2020-07-09 [1]
## future.apply 1.6.0 2020-07-01 [1]
## generics 0.0.2 2018-11-29 [1]
## ggplot2 * 3.3.2.9000 2020-07-29 [1]
## ggrepel 0.9.0 2020-07-24 [1]
## ggridges 0.5.2 2020-01-12 [1]
## ggthemes 4.2.0 2019-05-13 [1]
## globals 0.12.5 2019-12-07 [1]
## glue 1.4.1.9000 2020-07-07 [1]
## goftest 1.2-2 2019-12-02 [1]
## gridExtra 2.3 2017-09-09 [1]
## gtable 0.3.0 2019-03-25 [1]
## haven 2.3.1 2020-06-01 [1]
## hms 0.5.3 2020-01-08 [1]
## htmltools 0.5.0 2020-06-16 [1]
## htmlwidgets 1.5.1 2019-10-08 [1]
## httpuv 1.5.4 2020-06-06 [1]
## httr 1.4.2 2020-07-20 [1]
## ica 1.0-2 2018-05-24 [1]
## igraph 1.2.5 2020-03-19 [1]
## irlba 2.3.3 2019-02-05 [1]
## jsonlite 1.7.0 2020-06-25 [1]
## KernSmooth 2.23-17 2020-04-26 [2]
## knitr 1.29 2020-06-23 [1]
## labeling 0.3 2014-08-23 [1]
## later 1.1.0.1 2020-06-05 [1]
## lattice 0.20-41 2020-04-02 [2]
## lazyeval 0.2.2 2019-03-15 [1]
## leiden 0.3.3 2020-02-04 [1]
## lifecycle 0.2.0 2020-03-06 [1]
## listenv 0.8.0 2019-12-05 [1]
## lmtest 0.9-37 2019-04-30 [1]
## lubridate 1.7.9 2020-07-11 [1]
## magrittr * 1.5.0.9000 2020-07-27 [1]
## MASS 7.3-51.6 2020-04-26 [2]
## Matrix * 1.2-18 2019-11-27 [1]
## mgcv 1.8-31 2019-11-09 [2]
## mime 0.9 2020-02-04 [1]
## miniUI 0.1.1.1 2018-05-18 [1]
## modelr 0.1.8.9000 2020-05-19 [1]
## munsell 0.5.0 2018-06-12 [1]
## nlme 3.1-148 2020-05-24 [2]
## patchwork * 1.0.1.9000 2020-06-22 [1]
## pbapply 1.4-2 2019-08-31 [1]
## pillar 1.4.6.9000 2020-07-21 [1]
## pkgconfig 2.0.3 2019-09-22 [1]
## plotly 4.9.2.1 2020-04-04 [1]
## plyr 1.8.6 2020-03-03 [1]
## png 0.1-7 2013-12-03 [1]
## polyclip 1.10-0 2019-03-14 [1]
## promises 1.1.1 2020-06-09 [1]
## purrr * 0.3.4.9000 2020-07-29 [1]
## R6 2.4.1.9000 2020-07-18 [1]
## RANN 2.6.1 2019-01-08 [1]
## RColorBrewer 1.1-2 2014-12-07 [1]
## Rcpp 1.0.5 2020-07-06 [1]
## RcppAnnoy 0.0.16 2020-03-08 [1]
## readr * 1.3.1.9000 2020-07-16 [1]
## readxl 1.3.1.9000 2020-05-28 [1]
## reprex 0.3.0 2019-05-16 [1]
## reshape2 1.4.4 2020-04-09 [1]
## reticulate 1.16 2020-05-27 [1]
## rlang * 0.4.7.9000 2020-07-29 [1]
## rmarkdown 2.3.3 2020-07-25 [1]
## ROCR 1.0-11 2020-05-02 [1]
## rpart 4.1-15 2019-04-12 [2]
## rstudioapi 0.11.0-9000 2020-07-15 [1]
## rsvd 1.0.3 2020-02-17 [1]
## Rtsne 0.16 2020-07-03 [1]
## Rttf2pt1 1.3.8 2020-01-10 [1]
## rvest 0.3.6 2020-07-25 [1]
## scales 1.1.1.9000 2020-07-24 [1]
## sctransform 0.2.1 2019-12-17 [1]
## sessioninfo 1.1.1.9000 2020-07-18 [1]
## Seurat * 3.2.0.9004 2020-07-28 [1]
## shiny 1.5.0.9001 2020-07-28 [1]
## spatstat 1.64-1 2020-05-12 [1]
## spatstat.data 1.4-3 2020-01-26 [1]
## spatstat.utils 1.17-0 2020-02-07 [1]
## stringi 1.4.6 2020-02-17 [1]
## stringr * 1.4.0.9000 2020-06-01 [1]
## styler * 1.3.2.9000 2020-07-25 [1]
## survival 3.2-3 2020-06-13 [2]
## tensor 1.5 2012-05-05 [1]
## tibble * 3.0.3.9000 2020-07-21 [1]
## tidyr * 1.1.0.9000 2020-07-23 [1]
## tidyselect 1.1.0.9000 2020-07-11 [1]
## tidyverse * 1.3.0.9000 2020-06-01 [1]
## utf8 1.1.4 2018-05-24 [1]
## uwot 0.1.8.9000 2020-07-19 [1]
## vctrs 0.3.2.9000 2020-07-23 [1]
## viridisLite 0.3.0 2018-02-01 [1]
## withr 2.2.0 2020-04-20 [1]
## xfun 0.16 2020-07-24 [1]
## xml2 1.3.2 2020-04-23 [1]
## xtable 1.8-4 2019-04-21 [1]
## yaml 2.2.1 2020-02-01 [1]
## zoo 1.8-8 2020-05-02 [1]
## source
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.1)
## CRAN (R 4.0.0)
## Github (tidymodels/broom@762e3ad)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/dbplyr@a6ed629)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/dplyr@48aead4)
## Github (r-lib/ellipsis@57a5071)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/forcats@ab81d1b)
## Github (r-lib/fs@9e143f9)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/ggplot2@b4bc293)
## Github (slowkow/ggrepel@4d0ef50)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/glue@205f18b)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.1)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (tidyverse/lubridate@de2ee09)
## Github (tidyverse/magrittr@0d14075)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/modelr@16168e0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (thomasp85/patchwork@82a5e03)
## CRAN (R 4.0.0)
## Github (r-lib/pillar@8aef8f2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/purrr@74d5d67)
## Github (r-lib/R6@1415d11)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/readr@2ab51b2)
## Github (tidyverse/readxl@3815961)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (r-lib/rlang@1fb41d7)
## Github (rstudio/rmarkdown@204aa41)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (rstudio/rstudioapi@ed5dd25)
## CRAN (R 4.0.0)
## Github (jkrijthe/Rtsne@14b195f)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (r-lib/scales@9ff4757)
## CRAN (R 4.0.0)
## Github (r-lib/sessioninfo@791705b)
## Github (satijalab/seurat@ad0008e)
## Github (rstudio/shiny@766b910)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/stringr@f70c4ba)
## Github (r-lib/styler@16d815e)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## Github (tidyverse/tibble@b4eec19)
## Github (tidyverse/tidyr@3f49600)
## Github (tidyverse/tidyselect@69fdc96)
## Github (hadley/tidyverse@8a0bb99)
## CRAN (R 4.0.0)
## Github (jlmelville/uwot@13a198f)
## Github (r-lib/vctrs@df8a659)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
##
## [1] /usr/local/lib/R/4.0/site-library
## [2] /usr/local/Cellar/r/4.0.2_1/lib/R/library